import { createStore , applyMiddleware } from 'redux'
//导入logger
import logger from 'redux-logger'
//导入纯函数
import reducer from './redux'
//注意：redux本身没有处理异步action的能力
//导入两个持久化方法
import { persistReducer,persistStore} from "redux-persist"

//导入存储引擎（默认存储在localStorage)
import storage from 'redux-persist/lib/storage'
//import storage from 'redux-persist/lib/storage/session'  //这个是默认存入会话及存储里面



//对原有的纯函数进行持久化处理
// 传入你的没有持久化的，经过处理之后出来的就是成功持久化的
//   key 表示你要给他起的名字
 // storage 必须要写
 //blacklist【】这个数组里面写的是不需要持久化的数据
var persistedReducer=persistReducer({key:"redux",storage, blacklist: [],} ,reducer)

//创建store实例
var store= createStore(persistedReducer, applyMiddleware(logger) );

// 对store进行持久化处理//传入store返回的是持久化后的story
export  var persistor =persistStore(store)

//创建store实例(在整个应用中是唯一), 可以为整个应用的所有组件共享
export default  store